import { createRouter, createWebHashHistory } from 'vue-router'
import { ElMessage } from 'element-plus'
import routes from "@/router/routes.js";
import $store from "@/store";

const router = createRouter({
  history: createWebHashHistory(process.env.BASE_URL),
  routes
})

router.beforeEach((to)=>{
  console.log($store.state.meuns)
  // 获取路由配置中定义公开路由信息
  let isPublic = to.meta.isPublic;

  // 判断路由是否为公开路由。如果是直接放行访问
  if(isPublic){
    return true;
  }

  // 如果不是，进行完成后续判断
  // 加载登录关键记录数据
  let token = sessionStorage.getItem("token");
  // 判断是否完成了登录
  if(token){
    console.log("===>")
    // 如果完成了登录直接放行访问
    // 当前用户是否具有访问的权限 ==> 依赖于当前登录用户的导航权限
    // console.log(to.name)
    let isNoAuth = to.meta.isNoAuth;
    console.log(isNoAuth)

    if(isNoAuth){
      return true;
    }

    let auth = $store.state.meuns.includes(to.name)
    if(auth){
      return true;
    }else{
      return {
        name:"auth"
      }
    }
  }else{
    // 如果没有登录，提示信息，并回跳到登录页面
    ElMessage.warning("请先登录");
    return {
      name:"login"
    }
  }

})

export default router
